package cnpc.udp.example.mapper;

import cnpc.udp.example.controller.vo.TestPageVO;
import cnpc.udp.example.dataobject.TestDO;
import cnpc.udp.framework.basic.common.datastructure.PageResult;
import cnpc.udp.framework.mybatis.core.mapper.BaseMapperX;
import cnpc.udp.framework.mybatis.core.query.LambdaQueryWrapperX;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName TestMapper
 * @Description TODO
 * @Author Tiansai
 * @Date 2024年05月24日 11:00
 **/
@Mapper
public interface TestMapper extends BaseMapperX<TestDO> {
     List<TestDO> selectList1();

     default PageResult<TestDO> selectPage(TestPageVO reqVO) {
          return selectPage(reqVO, new LambdaQueryWrapperX<TestDO>()
                  .likeIfPresent(TestDO::getName, reqVO.getName())
                  .orderByDesc(TestDO::getId));
     }

     // mybatis 常规分页方式，需要具备mybatis基础知识
     int count();
     List<TestDO> selectByPage(@Param("offset") int offset, @Param("limit") int limit);
}
